package com.ibm.db2oncampus.portal.seguranca.service;

import java.util.List;

import com.ibm.db2oncampus.portal.framework.service.Service;
import com.ibm.db2oncampus.portal.seguranca.domain.Functionality;
import com.ibm.db2oncampus.portal.seguranca.domain.Module;
import com.ibm.db2oncampus.portal.usuario.domain.Role;

/**
 * 
 * @author Wellington
 *
 */
public interface SegurancaoService extends Service {

    public abstract List<Functionality> findFuncionalidadesBySistema(long l);

    public abstract Functionality findFuncionalidadeById(long l);

    public abstract void saveFuncionalidade(Functionality funcionalidade);

    public abstract void removeFuncionalidade(Functionality funcionalidade);

    public abstract List<Module> findModulosMenu();
    
    public abstract List<Module> findModulosMenuByRole(List<Role> roles);

    public abstract List<Module> findModulos();

    public abstract Module findModulosById(long l);

    public abstract void saveModulo(Module modulo);

    public abstract void removeModulo(Module modulo);
    
    public abstract Boolean isFunctionalityValid(Functionality functionality, List<Role> validRoles);
}